home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 051-075 / disk_065 / mwb / mwb.doc < prev    next >
Text File  |  1992-05-06  |  4KB  |  103 lines

  1.  
  2. MWB.DOC                 (Alternate Workbench Screen)
  3.  
  4. (C) 1987 Matthew Dillon, All Rights Reserved.
  5. Freely Distributable.  This document must accompany all distributions.
  6. Re-Distributing the source is optional.
  7.  
  8. WBM is a program which will create new 'workbench' screens and route
  9. by request OpenWindow() calls meant for the workbench to these new
  10. screens.
  11.  
  12. MWB_RESIDENT is the resident portion of MWB and should NOT be executed
  13. directly.  When you issue an initialize command (MWB i), MWB_RESIDENT will
  14. be LoadSeg()d into memory and run as a task.  MWB_RESIDENT then intercepts
  15. and interprets all OpenWindow() requests, allowing OpenWindow()'s to
  16. CUSTOMSCREEN's to go through, and possibly modifying OpenWindows() to
  17. the workbench screen to go to a custom screen.  Applications usually don't
  18. know they are running on a custom screen.  The Application's NewWindow
  19. structure is not modified (MWB modifies a copy of NW and calls OpenWindow()
  20. with the copy).
  21.  
  22. When using more advanced commands with MWB, it *is* possible to crash the
  23. machine.  Apart from that, it's pretty bulletproof... you can't screw
  24. things up by running 'MWB i' multiple times, or 'MWB u' multiple times.
  25. Additionaly, if you uninitialize MWB with 'MWB u' and there are still MWB
  26. screens hanging around which can't be closed because they have active
  27. windows, the MWB state information is NOT deallocated and becomes available
  28. when you initialize again (MWB i).
  29.  
  30. MWB i       initialize MWB
  31. MWB u       remove MWB
  32. MWB c       clear all MWB custom screens which have NO open windows
  33. MWB [L] [N] [I] [h#] [w#] [d#] n        next open to new custom screen
  34. MWB #       next open to specified screen# (0=wb, 1=first cust scr, etc...)
  35.  
  36.     I   -force interlace mode
  37.     N   -force non-interlace mode
  38.     L   -force LOW-RESOLUTION mode
  39.     h#  -set screen height
  40.     w#  -set screen width
  41.     d#  -set screen depth
  42.  
  43.     NOTE:   Anything left unspecified uses the default Workbench parameters.
  44.     If Height and Width are left unspecified, MWB will automatically
  45.     compensate the width and height for any mode changes (LORES/INTERLACE).
  46.     The 'n' command for 'new custom screen' causes the next OpenWindow() to
  47.     go to a custom screen.
  48.  
  49.     NOTE:   Normally, any OpenWindow() calls to the WorkBench will get
  50.     routed to the current custom screen, so you should be careful when
  51.     specifying screens of different dimensions than the workbench.  Most
  52.     applications expect at least 640x200 and open their windows accordingly.
  53.  
  54.  
  55. EXAMPLES:
  56.     % mwb i
  57.     % mwb n
  58.     % newcli                    put newcli window on a new custom screen
  59.  
  60.     % mwb i
  61.     % mwb I d1 n
  62.     % newcli                    put newcli window on a new interlace custom
  63.                                 screen of depth 1.
  64.  
  65.     % mwb 0                     next OpenWindow() goes to workbench screen
  66.  
  67.     % mwb 1                     next OpenWindow() goes to first curstom screen
  68.  
  69.     % mwb L h100 d1 n           next OpenWindow() goes to new LO-RES custom
  70.                                 screen of height 100 and depth 1.
  71.  
  72.  
  73. PROBLEMS:
  74.  
  75.     Problems with the workbench (LoadWb).  Do NOT LoadWb to a custom screen.
  76.     You must LoadWb to the real workbench screen.  Once running, you can use
  77.     MWB to cause workbench windows to come up in a custom screen, but the
  78.     workbench will get confused if you attempt to MOVE icons from those
  79.     windows.
  80.  
  81.     NOTE that some applications expect the workbench to be a specific size;
  82.     they may even check the workbench screen parameters.  If such application's
  83.     OpenWindow() is re-routed to a custom screen, you should be careful that
  84.     this custom screen is of the same type as the default workbench screen.
  85.     This can be accomplished by specifying "MWB n" without any qualifier
  86.     options.
  87.  
  88.     MWB does NOT allow you to open arbitrary windows in other application's
  89.     custom screens.  Why?  You may ask the question: What would happen if
  90.     that application CloseScreen()'d it's screen with other, illegal windows
  91.     still active?  FireWorks.
  92.  
  93. COMPILING:
  94.     You must compile with Aztec with the +L option for MWB.C, and with the
  95.     +BCDL options for MWB_RESIDENT.C.  Link with the CL32.LIB.
  96.  
  97.     The reason for all of this is because the small code/data model cannot
  98.     be used for MWB_RESIDENT since it is run directly from MWB without any
  99.     standard startup support (the +B option disables the inclusion of
  100.     the startup code for Aztec).
  101.  
  102.  
  103.